from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import datetime
import requests
import time



# 第一步：打开网站并登录，获取 cookie（只做一次）
def save_cookies():
    service = Service(executable_path=r'D:\pulg\webdriver\chromedriver-win64\chromedriver.exe')
    driver = webdriver.Chrome(service=service)
    driver.get("http://hxzhan.rtcloud.com:32111/temp/dashboard")  # 登录页地址
    time.sleep(1)
    driver.find_element(By.NAME,'username').send_keys('xiaoqing')
    driver.find_element(By.NAME,'password').send_keys('a143384566!')

    # 等待你手动登录或模拟输入用户名密码登录
    time.sleep(10)  # 给你足够时间手动扫码/填写验证码

    # 保存 cookie 到本地文件
    cookies = driver.get_cookies()
    import json
    with open("F:\\cookies.json", "w") as f:
        json.dump(cookies, f)

    driver.quit()

# 第二步：使用 cookie 登录（自动化）
def load_cookies_and_login():
    driver = webdriver.Chrome()
    driver.get("http://hxzhan.rtcloud.com:32111/temp/dashboard")  # 打开首页或任意页面让浏览器初始化 cookie 所需域名


    # 加载 cookie
    import json
    with open("F:\\cookies.json", "r") as f:
        cookies = json.load(f)
        for cookie in cookies:
            # 注意：添加 cookie 前必须打开与 cookie 域名相同的 URL
            if 'expiry' in cookie:
                cookie['expires'] = cookie.pop('expiry')  # selenium 有时对 expires 有要求
            driver.add_cookie(cookie)

    # 刷新页面以应用 cookie
    driver.refresh()

    # 此时已登录状态
    time.sleep(5)
    driver.quit()

# 只需第一次执行，手动登录并保存 cookie
save_cookies()

# 每次运行时加载 cookie 自动登录
# load_cookies_and_login()